Turn on (and fix) do_initcalls so page scrub init
is called... otherwise page scrub softirq causes null
pointer deref
return 0;
}
-
+static void __init do_initcalls(void)
+{
+ initcall_t *call;
+ for ( call = &__initcall_start; call < &__initcall_end; call++ )
+ (*call)();
+}
void cmain(multiboot_info_t *mbi)
{
ac_timer_init();
// init_xen_time(); ???
schedulers_start();
-// do_initcalls(); ???
+ do_initcalls();
printk("About to call sort_main_extable()\n");
sort_main_extable();
#define __initsetup \
__attribute_used__ __attribute__ ((__section__ (".setup.init")))
#define __init_call \
- __attribute_used__ __attribute__ ((__section__ (".initcall.init")))
+ __attribute_used__ __attribute__ ((__section__ (".initcall1.init")))
#define __exit_call \
__attribute_used__ __attribute__ ((__section__ (".exitcall.exit")))